The present invention relates generally to the implementation of business services and, more particularly, to a system and method for generating implementation artifacts for contextually-aware business applications.
IT services companies are increasingly focusing their efforts on building reusable solutions rather than building point solutions to individual clients which tend to be expensive and time consuming. For example, major pieces of solutions such as Request for Quote, First Notice of Loss for insurance industry and Trade Promotions Management for distribution industry are being developed ahead of time internally on choice platforms and are then being customized for specific client needs upon winning a deal. IT services companies see this as a way to deliver solutions quickly and cost effectively to their clients.
However, there are challenges to be overcome even with this reusable solution approach. One of the main challenges is that these pre-built solutions still need varying amounts of customization at each client environment. This is so because every client has a unique combination of packaged vendor solutions (e.g., SAP, Oracle) and legacy applications and would prefer specific middleware platforms (such as IBM WebSphere platform, Oracle/BEA platform, SAP NetWeaver platform etc). The solution has to be customized to work with the existing environment on the choice platform of the client and be integrated with its specific legacy applications. The key question in this setting is: how can IT services companies develop solutions on one platform and then adapt them to individual client settings with varied IT environments and platforms more effectively and efficiently than developers doing it manually?
Model driven architecture (MDA) and model driven development (MDD) approaches proposed by OMG postulate that a key aspect of building reusable solutions is developing reusable models. According to this approach, the functional specification of a new business solution can be described formally in a platform independent model (PIM) and can be translated to a platform specific model (PSM). This platform specific model can then be translated into implementation artifacts such as code and database schema that pertain to that target platform via fully or partially automated model-driven transformations. The emphasis is on building full and complete formal models in modeling languages such as UML. Several model-driven transformations can then be applied to translate these models into implementation artifacts. MDA also talks about reverse engineering models from implementation artifacts to some extent although most commercial MDA tools tend to support forward transformations more naturally than the reverse transformations.
MDA approach has been applied to generate implementation artifacts from platform independent models in the past with varying degrees of success. Among the criticisms of the MDD approach is that it assumes that complete and formal models can be created upfront for any given application and that the meta-models of the target platforms are available. In addition, it does not say much about how the generated implementation artifacts can/should work with the existing legacy systems on a given client platform. For example, if a client already has an SAP ERP system to maintain customer accounts, regenerating implementation artifacts to create and maintain such information is not practical. When building new or changed business applications leveraging existing functionality that reflects the client's context is critical.
Some aspects of model driven development have been looked at by research efforts such as the Model-Driven Business Transformation (MDBT), which is one example of the known Model-Driven Development (MDD) approach. MDBT effort has been successful within the context of its scope. However, MDBT efforts have focused either only on transforming a platform independent model to platform specific artifacts without much consideration for the existing client context, or on transforming a platform independent model to a single platform.
What is needed is a model-driven approach to generate implementation artifacts for a target platform from a given platform independent model while taking into account the existing assets/code/services that can be leveraged. By generating artifacts that are well-informed about and bound where appropriate with clients' existing functionality and assets, the system and method of the present invention helps cut down the development time during project implementations, thereby resulting in reduced project durations and costs.